package com.gzsxy.sso.core.dao;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.gzsxy.sso.common.dto.response.RoleFunctionRsp;
import com.gzsxy.sso.core.entity.Role;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author zxl
 * @since 2021-11-10
 */
@Repository
public interface RoleMapper extends BaseMapper<Role> {



    /**
     * @description: 查询角色下所有功能列表
     * @param
     * @return
     */
    List<RoleFunctionRsp> findFunctionByRoles();

    /**
     * @description: 查询角色代码是否已存在
     * @param  code 角色代码
     * @return true/false
     */
    Boolean existByCode(String code);

    /**
     * @description: 角色列表组装
     * @param
     * @return
     */
    IPage<RoleFunctionRsp> selectPageByRoleQueryVo(
            //mp会自动组装分页参数
            IPage<?> pageParam,
            //mp会自动组装queryWrapper：
            //@Param(Constants.WRAPPER) 和 xml文件中的 ${ew.customSqlSegment} 对应
            @Param(Constants.WRAPPER) QueryWrapper<RoleFunctionRsp> wrapper);
}
